@秒灵儿
2年前 提问
1个回答

典型的软件安全开发模型有哪些

安全小白成长记
2年前

典型的软件安全开发模型有以下这些:

  • 瀑布模型:瀑布模型是在20世纪80年代之前唯一被广泛采用的生命周期模型,现在它仍然是软件工程中应用得最为广泛的开发模型。瀑布模型的本质是一次通过,即每个活动只执行一次,最后得到软件产品,因此也称为“线性顺序模型”或者“传统生命周期”。它的优势在于它是规范的、文档驱动的方法。

  • 快速原型模型:快速原型模型是为了克服瀑布模型的缺点而提出来的。它通过快速构建一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见,获取用户的真实需求。这种模型的主要问题是,快速建立起来的原型系统结构加上连续的修改可能会导致产品质量低下。

  • 增量模型:增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。该模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。

  • 螺旋模型:螺旋模型的基本做法是,在瀑布模型的每一个开发阶段前引入非常严格的风险识别、风险分析和风险控制。它把软件项目分解成一个个小项目,每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。通过及时对风险进行识别及分析,决定采取何种对策,进而消除或减少风险的损害。螺旋模型强调风险分析,因此特别适用于庞大、复杂并具有高风险的系统。

  • 喷泉模型:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型较好地体现了面向对象软件开发过程无缝迭代的特性,是典型的面向对象的软件过程模型之一。

  • Rational统一过程:RUP强调采用迭代和检查的方式来开发软件,整个项目开发过程由多个迭代过程组成。在每次迭代中只考虑系统的一部分需求,针对这部分需求进行分析、设计、实现、测试和部署等工作,每次迭代都是在系统已完成部分的基础上进行的,每次给系统增加一些新的功能,如此循环往复地进行下去,直至完成最终项目。

  • 极限编程和敏捷开发:极限编程XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈及其他一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时调整开发过程。极限编程方法强调开发者与用户的沟通,让客户全面参与软件的开发设计,保证变化的需求及时得到修正。